# -*- coding: utf-8 -*-
"""
Created on Fri Aug 25 12:27:27 2023

@author: skunk69
"""

import json

chinese_name = u'Marks恐怖强迫量表'
english_name = 'Marks Scale for Compulsions, Phobias, Obsessions and Rituals'
abbreviation = 'MSCPOR'
category = u'精神病学临床量表'

outline = u"""Marks恐怖强迫量表（Marks Scale for Compulsions, Phobias, Obsessions and Rituals, MSCPOR）是由Marks（1977）在他原先和Gelder的早期工作的基础上发展而成，主要用于对强迫性神经症和恐怖性神经症的治疗效果评价，是比较有效的恐怖强迫量表之一。国内有蔡国钧的译本。"""

instruction = u""""""

with open('MSCPOR.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

# scales
scales = [u'强迫行为',u'恐怖行为',u'总体适应',u'靶症状']
compulsions_scale = {}
phobias_scale = {}
adaptability_scale = {}
target_scale = {}

# compulsions scale
items = {}
for line in lines[0:29]:
    key,value = line.split('.',maxsplit=1)
    items[key] = value.strip()

rating = [u'无',u'轻，偶然有',u'中等严重，经常有',u'严重，频繁出现',
          u'非常严重，几乎一直存在']
score_rules = list(range(1,6))

compulsions_scale = {
    'scale_name':scales[0],
    'items':items,
    'rating':rating,
    'score_rules':score_rules       
    }

# phobias scale
items = {}
for line in lines[29:39]:
    key,value = line.split('.',maxsplit=1)
    items[key] = value.strip()

rating = [u'遇到恐怖的物体或境遇时，无任何不舒服感觉',u'有不舒服感，但不回避',
          u'有恐惧感，并试图回避',u'有强烈恐惧感，并尽力回避',
          u'有非常强烈的恐惧感，不可能回避时呈惊恐发作']
score_rules = list(range(1,6))

phobias_scale = {
    'scale_name':scales[1],
    'items':items,
    'rating':rating,
    'score_rules':score_rules       
    }

# overall adaptability scale
items = {}
for line in lines[39:41]:
    key,value = line.split('.',maxsplit=1)
    items[key] = value.strip()
rating = [u'无',u'轻',u'中等',u'重度',u'极重']
score_rules = list(range(1,6))

adaptability_scale = {
    'scale_name':scales[2],
    'items':items,
    'rating':rating,
    'score_rules':score_rules       
    }

# Target symptom scale
items = {}
for line in lines[41::]:
    key,value = line.split('.',maxsplit=1)
    items[key] = value.strip()
rating = {}
rating['a'] = [u'无',u'似有，稍有',u'肯定有',u'明显',u'偏重，有些干扰生活',
               u'重，且干扰生活',u'很重，且明显干扰生活',u'严重，无法正常生活',
               u'极重，已无法忍受']
rating['b'] = [u'无',u'偶然有，如每周一次',u'很少有，如每几天一次',
               u'少有，如每天一次',u'有时有，如一天多次',
               u'常有，每天症状呈现几个小时',u'经常有，如有症状时间占白天的一半',
               u'几乎一直有',u'一直有']
score_rules = list(range(1,10))

target_scale = {
    'scale_name':scales[-1],
    'items':items,
    'rating':rating,
    'score_rules':score_rules       
    }

contents = {
    'compulsions_scale':compulsions_scale,
    'phobias_scale':phobias_scale,
    'adaptability_scale':adaptability_scale,
    'target_scale':target_scale,    
    }

implementation = u"""Marks恐怖强迫量表是一个他评量表。评定注意事项如下：
检查应由经过训练的精神科医师执行。
原作者推荐应用与之配套的半定式检查法。靶症状应在全面检查后确定，在恐怖和强迫症状中，按被试所述各选一种。
一次评定约需20分钟。
本量表也曾用作自评。"""

reliability = u""""""
validity = u""""""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""MSCPOR的结果，主要为各单项分（特别是40~43项）和强迫行为清单（1~39项）的总分。在药理学研究中，常以40~43作为主要统计指标。"""

applications = u"""量表作者认为本量表信度和效度良好，曾用于多项药理学研究，结果满意。本量表似乎对强迫思维注意不够。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)